import { defaultRequest } from '@shared/utils/request/default-request';
import type {
  TeamManageReq,
  TeamManageRes,
  TeamMemberRes,
  SendTaskReq,
  CheckTaskReq,
  CheckTaskRes,
  TaskDetailListRes,
  TaskListRes,
  PersonalProductionNumbersRes
} from './type';
import type { PaginationQuery } from '@shared/service/pagination/type';

/**
 * 获取团队成员
 * 今日选品
 */
export function getTeamMemberApi() {
  return defaultRequest.get<TeamMemberRes>({
    url: '/api/team/members'
  });
}

/**
 * 检测任务
 * 今日选品-选择发送时间之后
 */
export function checkTaskApi(data: CheckTaskReq) {
  return defaultRequest.post<CheckTaskRes[]>({
    url: '/api/team/task/check',
    data
  });
}

/**
 * 发送任务
 * 今日选品
 */
export function sendTaskApi(data: SendTaskReq) {
  return defaultRequest.post<boolean>({
    url: '/api/team/task/send',
    data
  });
}

/**
 * 获取任务列表
 * 应用启动初始化已有任务
 */
export function getTeamTaskListApi() {
  return defaultRequest.get<TaskListRes[]>({
    url: '/api/team/task/list'
  });
}

/**
 * 获取任务明细列表
 * 任务管理
 */
export function getTeamTaskDetailListApi(params: PaginationQuery) {
  return defaultRequest.get<TaskDetailListRes>({
    url: '/api/team/task/detail/list',
    params
  });
}

/**
 * 批量删除任务
 * 任务管理
 */
export function deleteTaskApi(data: number[]) {
  return defaultRequest.delete<boolean>({
    url: '/api/team/task',
    data
  });
}

/**
 * 获取团队列表
 * 团队管理
 */
export function getTeamListApi(params: TeamManageReq) {
  return defaultRequest.get<TeamManageRes[]>({
    url: '/api/team/list',
    params
  });
}

/**
 * 获取个人作品数和排名
 * 全局头部
 */
export function getPersonalProductionNumbersApi() {
  return defaultRequest.get<PersonalProductionNumbersRes>({
    url: '/api/team/personal'
  });
}
